package com.example.a1.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.viewpager.widget.PagerAdapter;
import com.example.a1.R;
import com.example.a1.model.Banner;
import com.example.a1.util.GlideUtil;
import java.util.List;

public class BannerAdapter extends PagerAdapter {
    private final Context context;
    private final List<Banner> bannerList;

    public BannerAdapter(Context context, List<Banner> bannerList) {
        this.context = context;
        this.bannerList = bannerList;
    }

    @Override
    public int getCount() {
        return bannerList.isEmpty() ? 0 : Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    // 3. 初始化轮播图 Item（加载布局 + 绑定数据）
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // 加载轮播图 Item 布局
        View itemView = LayoutInflater.from(context)
                .inflate(R.layout.item_banner, container, false);
        ImageView ivBanner = itemView.findViewById(R.id.iv_banner);

        // 处理无限轮播：取模获取真实位置（避免数组越界）
        int realPosition = position % bannerList.size();
        Banner banner = bannerList.get(realPosition);

        // 加载网络图片
        GlideUtil.loadImage(context, banner.getImageUrl(), ivBanner);
        ivBanner.setClickable(false);
        ivBanner.setFocusable(false);

        // 将 Item 加入容器
        container.addView(itemView);
        return itemView; // 返回当前 ItemView 作为标识
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}